<template>
  <div id='scroll' class='scroll' ref="scroll">
    <div class="content">
      <slot></slot>
    </div>
  </div>
</template>

<script>
  import BScroll from 'better-scroll';
  export default {
    name: 'scroll',
    props: { // 父辈向子辈传参
      //是否实时的监控滚动的位置，在父元素那控制
      probeType: {
        type: Number,
        default: 0
      },
      //是否下拉加载更多数据，父元素控制的
      pullUpLoad: {
        type: Boolean,
        default: false
      }
    },
    components: { // 组件的引用

    },

    data() {
      return {
        scroll: {},
      }
    },
    mounted() { // 页面进入时加载内容
      //创建BScroll对象
      this.scroll = new BScroll(this.$refs.scroll, {
        click: true,
        probeType: this.probeType,
        pullUpLoad: this.pullUpLoad,


      })
      //实现实时的监听
      this.scroll.on('scroll', (position) => {
        //监听的数据传出去
        this.$emit('scroll', position)

      })
      //监听上拉事件
      this.scroll.on('pullingUp', () => {
        this.$emit('pullingUp')
      })
    },
    methods: { // 方法
      scrollTo(x, y, time) {
        this.scroll && this.scroll.scrollTo(x, y, time)

      },
      //下拉多页数据调用的finisPullUP()这个方法
      finishPullUp() {

        this.scroll && this.scroll.finishPullUp()
      },
      refresh() {
        this.scroll && this.scroll.refresh()
      },
      getScrollSaveY() {
        return this.scroll ? this.scroll.y : 0
      }

    },
    computed: { // 计算属性
    },
    created() { // 实例被创建之后执行代码

    },
    watch: { // 监测变化

    }
  }

</script>
<style scoped>

</style>
